package com.zm.se.mapper.managerMapper;

import com.zm.se.entity.Emp;
import com.zm.se.entity.Manager;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.Date;
import java.util.List;

/**
 * 管理员持久层接口
 */
@Repository
@Mapper
public interface ManagerMapper {

    /**
     * 重置密码
     * @param num
     * @param Md5NewPassword
     * @return
     */
    Integer resetPwd(String num,@Param("password") String Md5NewPassword);

    /**
     * 删除用户
     * @param id
     * @return
     */
    Integer delEmp(Integer id); //

    /**
     * 修改用户
     * @param emp
     * @return
     */
    Integer updateEmp(Emp emp); //

    /**
     * 按id查找用户信息
     * @param id
     * @return
     */
    Emp findEmpById(Integer id);//

    /**
     * 取消个人管理员资格
     * @param num
     * @return
     */
    Integer delManager(Integer num);
    /**
     *录入教职工表
     * @param emp
     * @return
     */
    Integer InsertTeacher(Emp emp);

    /**
     * 辅助录入职工表
     * @param emp
     * @return
     */
    Integer selectCount(Emp emp);

    /**
     * 插入管理员数据
     * @param manager   管理员数据
     * @return  返回值为integer，0为耻辱失败，1为插入成功
     */
    Integer mInsert(Manager manager);



    /**
     * 查询学校员工表是否有姓名为xx，工号为xxxxxx的教师
     * @param username  管理员姓名
     * @param num
     * @return   返回1为：学校有这个老师；返回0为:这个人不是本校的
     */
    Integer findEmp(String username,String num);



    /**
     * 查找管理员信息验证密码是否正确
     * 没找到抛出异常
     * @param num
     * @return
     */
   Manager findByNum(String num);

    /**
     * 修改密码
     * @param num  插入where条件（num有唯一约束）
     * @param password  新密码
     * @param modifiedUser  修改人
     * @param modifiedTime  最后修改时间
     * @return  受影响行数
     */
    Integer updatePassword(@Param("num") String num,
                           @Param("password") String password,
                           @Param("phone")String phone,
                           @Param("email")String email,
                           @Param("modifiedUser") String modifiedUser,
                           @Param("modifiedTime") Date modifiedTime);    /**
     * 修改密码
     * @param num  插入where条件（num有唯一约束）

     * @return  受影响行数
     */
    Integer updateEmpPassword(@Param("num") String num,
                           @Param("phone")String phone,
                           @Param("email")String email);


    //////////////////////////////////////////////////////////////////////////////////////////////
    //emp

    /**
     * 验证是否为本单位人员
     * @param username
     * @param num
     * @return
     */
    Integer findByNumUsername(String username,String num);

    /**
     * 获取数据库中所有员工
     * @return
     */
    List<Emp> findAllEmp();

    Emp findRegPwd(String num);
}
